Skip to content

Fix ModelingToolkitBase QA metadata - #4737

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/fix-mtkbase-qa-metadata
Jul 13, 2026
Merged

Fix ModelingToolkitBase QA metadata#4737
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/fix-mtkbase-qa-metadata

Conversation

@ChrisRackauckas-Claude

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Jul 13, 2026

Copy link
Copy Markdown
Member

Please ignore this PR until reviewed by @ChrisRackauckas.

Summary

  • add the missing Optimization = "5.5" compatibility bound for the ModelingToolkitBase test extra
  • retain SimpleNonlinearSolve as a hard dependency
  • narrowly exempt SimpleNonlinearSolve from Aqua's stale-dependency check because it is imported only by MTKBifurcationKitExt

Why the exemption is necessary

MTKBifurcationKitExt imports SimpleNonlinearSolve, but the extension is intentionally activated by loading BifurcationKit alone. Moving SimpleNonlinearSolve to an additional weak-dependency trigger would change that activation contract. Removing the hard dependency instead broke the extension suite, so this is an extension-only hard dependency rather than an unused dependency.

The source comment records that invariant next to the narrow Aqua exemption. No tests are skipped, marked broken, or changed to warning-only behavior.

Local verification

Final head 9451997d80, based on upstream f33a9699b5:

The QA group intentionally still exits 1 for those three existing findings; this PR fixes only the metadata findings it targets.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Rebased onto current master (1f408dffbc) after the Julia compatibility-floor fix merged. New head: 7d78ffb90e. Before the lease-protected update, I fetched the fork and verified the remote feature branch still contained only the previous a63badaeaf commit.

Post-rebase local checks on Julia 1.12.6:

  • Aqua stale dependencies: pass
  • Aqua dependency compatibility: julia, deps, extras, and weakdeps each 1/1; exit 0
  • Runic.jl 1.7.0 over the full repository: exit 0

CI has restarted on the rebased head.

Add the missing Optimization test-extra compatibility bound. Keep SimpleNonlinearSolve as a hard dependency for MTKBifurcationKitExt activation and narrowly exempt that extension-only use from Aqua stale-dependency checking.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas-Claude
ChrisRackauckas-Claude force-pushed the agent/fix-mtkbase-qa-metadata branch from 7d78ffb to 9451997 Compare July 13, 2026 10:48
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Correction and final-base evidence for head 9451997d80:

  • restored SimpleNonlinearSolve; removing it broke MTKBifurcationKitExt activation
  • documented the extension-only hard-dependency invariant and applied only a narrow stale-dependency exemption
  • native Extensions: 96/96, exit 0
  • native ModelingToolkitBase QA: JET 54/54; Aqua stale dependencies 1/1; compat bounds 4/4
  • Aqua aggregate remains 8 pass / 3 fail only for the existing ambiguity, unbound-type-parameter, and piracy findings
  • repository-wide Runic and git diff --check: exit 0

Before the exact lease-protected update I fetched both remotes and verified the feature branch still contained only the previous 7d78ffb90e head; upstream remained f33a9699b5.

@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review July 13, 2026 10:54
@ChrisRackauckas
ChrisRackauckas merged commit 655f4cd into SciML:master Jul 13, 2026
33 of 38 checks passed
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

CI checkpoint: the only completed non-code failure so far is Doc Preview Cleanup run 29244404226. It was cancelled while actions/checkout was fetching gh-pages after about six minutes; no package code or test ran in that job. I attempted both the CLI rerun and the Actions rerun endpoint, but this account cannot rerun it (GitHub reports the workflow is not rerunnable and the API requires repository-admin rights). No source change is justified for this infrastructure cancellation; the substantive checks remain in progress.

@ChrisRackauckas-Claude

ChrisRackauckas-Claude commented Jul 13, 2026

Copy link
Copy Markdown
Member Author

Additional CI triage:

  • ModelingToolkitStandardLibrary/Core fails only at the independently audited exact magnetic-flux equality in test/magnetic.jl:66 (2 passed, 1 failed)
  • the head QA job and exact-base QA job both have the same Actions annotation: the self-hosted runner lost communication with GitHub; this is infrastructure loss, not a QA test result
  • the canceled Doc Preview Cleanup job was documented above and ran no package code
  • Runic and the completed downstream/downgrade checks are passing; the intended lib/ModelingToolkitBase downgrade job remains pending

No #4737 source change is justified by these statuses. The magnetic fix remains under its own focused audit; the runner communication losses require a CI rerun rather than a code change.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

CI follow-up for the intended sublibrary downgrade job: the Optimization 5.x metadata change allows the ModelingToolkitBase minimum-compat run to resolve and proceed through InterfaceI (1,465 pass, 5 pre-existing broken) and most of InterfaceII (7,235 pass, 4 pre-existing broken). It then reports two errors in lib/ModelingToolkitBase/test/bvproblem.jl: Lotka–Volterra at line 14 and cost-function compilation at line 308. Both enter BoundaryValueDiffEqMIRK with ForwardDiff duals and fail on Float64(::ForwardDiff.Dual) conversion. Exact job/log.

This is a deeper BVP/minimum-compat failure exposed after the dependency metadata issue; it is not caused by the focused compat/Aqua changes in this PR, so I am keeping it out of #4737 and queuing the required clean-main/bisection audit separately. The equivalent base check is also red, but its run is still active and its logs are unavailable, so I am not yet claiming the same root cause there.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

The two red benchmark checks are workflow mechanics, not benchmark/test failures:

  • Julia LTS completed both base and head benchmarks and generated the comparison, then failed only when the action tried to post its bot comment with a read-only pull-request token (403 Resource not accessible by integration).
  • Julia 1 completed all base benchmarks, but the job reached its workflow time budget while setting up the head environment and was canceled before running the head comparison.

No code change is indicated by either result. Julia 1 log · Julia LTS log

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Correction after the base job metadata became available: the base-branch ModelingToolkitBase downgrade check did not reach a Julia test failure. Its only annotation is “self-hosted runner lost communication with the server.” Therefore it provides no reproduction or counterexample for the head BVP dual-conversion errors. I will reproduce the head minimum-compat environment locally and determine whether the new Optimization compat exposes an incompatible lower bound or an independent downstream defect before changing #4737.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

This exact BVP failure already has a completed clean-master reproduce/bisect/fix audit in BoundaryValueDiffEq #559. That audit reproduced the same Float64(::ForwardDiff.Dual) errors at bvproblem.jl:14 and bvproblem.jl:308 with released MIRK/Core, then developed only #559’s BoundaryValueDiffEqCore change and reran the complete file successfully (Lotka–Volterra 4/4; cost-function compilation 6 pass/2 pre-existing broken; all other BVP testsets passing).

The new minimum-compat job selects MIRK 1.17.0/Core 2.7.1 and hits the same affected default-AD path. No additional ModelingToolkit code change should be folded into merged #4737. The dependency follow-up is to merge/release #559, then verify or raise ModelingToolkitBase’s BVP floor so its downgrade resolver cannot retain an affected Core stack.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants